A product is manufactured from materials. The list of materials and quantities of each item listed is called a Bill of Material, or BoM. The list of ingredients for a baking recipe is the BoM for the recipe. The BoM for making bread would list the number of cups of flour, the cups of water, tablespoons of baking power, etc. The home baker would buy flour, baking power, etc. and gather the proper amounts of the ingredients to bake the bread. The recipe for home use would describe flour as “flour” or “white flour” relying on the knowledge of the person to purchase the correct flour and ordering of flour based on the bread requirements.
A commercial bakery would use a materials planning system called an “Enterprise Resource Planning”, ERP, system or a “Materials Requirements Planning”, MRP, system to plan the purchasing of flour and other materials require to bake the bread to meet customer demand. The term “white flour” is assigned an internal system identifier usually called a part number. The part number is usually a sequence of digits and letters that are unique within the system to identify the item, in this case, white flour. For this example, the part number for white flour in the bakery system is 12345. The system usually provides a set of fields called an item master to describe the item and used in the system processes that are associated with the item. The item master may include: an item description; the quantity for each unit of the item, e.g. 100 pounds per bag; the supplier from whom the item is purchased, e.g. Acme Flour; the part number that Acme Flour uses to order flour, e.g. part number WFL100 for 100 pound bags of white flour The system can determine the amount of flour to order from Acme to bake the bread needed to be produced. The bakery system uses the Acme part number in the purchase order sent to Acme so that the Acme system will direct the production and delivery of the correct number bags of designated flour in the designated bag size.
The bakery may have a document called the Approved Manufacture List, AML, which associates the bakery part number with the supplier and supplier part number. In the case for white flour, the AML is of the form:
Part number: 12345 Description: white flour                Supplier: Acme Supplier Part number: BFL100        
The BoM describes “what” and “how man” and the AML describes “from whom” and the part number to purchase the items that are the materials for the product.
The AML is not a critical document to the bakery since it usually reflects the contents of the bakery system. However, if the bakery transfers the baking of bread to another site with a different system or to a third party contract bakery, the AML is important since it maps the bakery part number to the supplier part number so the correct flour and bag weight is ordered. Validation of the AML is an important process for the transfer of a BoM from one system to another. The transfer of the product to another site or third party bakery may require that the supplier of flour be changed to a second supplier. The part number for ordering the correct flour and bag weight from the second supplier must replace the first supplier and part number in the AML. The validation process and the second supplier replacement processes are manual. These manual processes are tedious and error prone since the part numbers are just strings of characters and digits.
AML errors can cause significant problems. Errors in the AML are usually not detected until the product goes into production. The wrong item or wrong quantity is discovered when the first set of units are produced. These errors can cause very significant delays that result in higher costs and delays in time to market. The errors can be corrected in three ways:                1. The correct supplier part number is entered into the system for subsequent orders and the AML is corrected to reflect the change.        2. The correct supplier part number is entered into the system.        3. The supplier modifies the supplier order entry system so the incorrect part number will ship the correct part when received from that customer.        
Corrections 2 and 3 are frequent in the electronics industry. As a result, the AML is not correct. A product can be produced at one site but not producible at another site until the AML errors are corrected again.
In the electronics industry, third party contract manufacturers manufacture most of the products. The correct AML is important to the contact manufacturer when quoting a contract to manufacture the product since the contract manufacturer may be buying the components and a pricing error due to an AML error can mean a loss to the contract manufacturer either through higher costs when manufacturing or not winning the contract because the apparent cost was higher than that of a competitor. Also, the contract manufacturer may have relationships with other suppliers that provide better cost and/or service. The contract manufacturer would like to change the AML to reflect the use of these preferred suppliers by substituting these suppliers and the appropriate supplier part numbers. The corrected AML is important in every phase of the production for a contract manufacturer.
Acme Flour may produce a variety of flours: white flour, whole-wheat flour, whole grain flour, etc. and ship flour in a variety of bag sizes: 10 pound, 50 pound, 100 pound, etc. The Acme Flour system must be able to distinguish between each type of flour and each size of bag. Acme Flour assigns a unique part number to each combination of flour and bag size. For example, WFL100 is the part number for 100-pound bags of white flour, WFL50 the part number of 50-pound bags of white flour, etc. The part number may be understandable by a human once the assignment algorithm is understood or the part number may be a string of numbers and letters: 1234-4567, 1234-9854, etc. Most part number assignment processes assign the next available part number, so the part number and the item it represents are not easily associated.
A contract bakery may use the same supplier for flour but require a different bag size. The different bag size may be due to differences in equipment, etc. The part number in the AML provided by the bakery is correct for the type of flour but incorrect in bag size. The contract bakery must correct the AML to order the correct bag size.
The electronics industry has similar constraints for the electronic components used to assemble products. The most components are very small and are affixed to carriers for handling and feeding into the automated assembly equipment. The carrier for a component must match the assembly machine that will place the component. The supplier part number includes the carrier type. Most suppliers have a “core” part number independent of the carrier and concatenate a suffix to indicate the carrier. The core and suffix form the part number used to order a component in a carrier. When the production an electronic product is transferred from a first assembly line to a second assembly line with different assembly equipment requiring different component carriers, the components must be ordered with the carriers for the second assembly line since the carriers for the first assembly line will not work on the equipment of the second assembly line. An important part of the AML validation is selecting the carrier that will work with the assembly equipment for the line to assemble the product.
Most companies provide a catalog that systematically organizes the description of the products offered for sale by the company and the part number to be used to order the item. Catalogs are usually organized for people to search for items. Some catalogs are organized for searching by computer programs where the item description is encoded in a standard form for a parametric search. Classification methods have been used to organize sets of items. Classification of the items can provide an organization of the items so items may be easily found in a catalog. A characteristic is a property of an item. A parameter is a characteristic with a range of values used to distinguish items. Two Items with the same parameters with the same set of values are interchangeable. The parameters must be selected to distinguish items so that items are interchangeable for a particular use. The interchangeable items may differ in other characteristics but interchangeable for the use for which the set of parameters were selected. For example, 100-pound bags of white flour are interchangeable for use in industrial baking in that all bags contain white flour and weigh 100 pounds. The color of the bags or the dimensions of the bag are not important for this use and were not considered as parameters. A 50-pound bag of white flour is not interchangeable with a 100-pound bag since ordering one bag results in only 50 pounds of white flour rather than 100 pounds. In this example, the parameters are type of flour and bag weight. Note that the implicit classification is flour in bags. Flour can be a sub classification of ground grains, and ground grains can be a sub classification of grains, etc. The classification system need not be derived from fundamentals but from the expected experience of the catalog users. A catalog of a flour producer can be organized with flour as a basic classification and only the types of flour and flour characteristics are considered as candidates for parameters.
The objective of a classification of items for a catalog is to identify interchangeable items for the expected use. The selection of parameters is important as well as the grouping of parameters to organize the items for a systematic and “natural” search for match, the set of interchangeable items. Classification can be thought of as a tree with a parameter at each fork with different values for each branch. A classification tree for the Acme is illustrated in FIG. 1. The first fork 1 is from the base of the tree where the parameter “type of flour” forms the branches. There are three branches: white flour 2, whole-wheat flour 4, and whole-grain flour 3. The white flour 2 branch has a parameter for bag weight 5 with three branches: 10-pounds 6, 50-pounds 7 and 100-pounds 8. The terminus of each branch, a leaf, is an item that can be ordered from Acme and is assigned an Acme part number. An Acme customer can find the part number for 100-pound bags of white flour from the catalog by first selecting the white flour 2 branch and then selecting the 100-pound bags branch. The 100-pound bag 8 is a leaf and the catalog provides the Acme part number for ordering a 100-pound bag of white flour From the classification tree, the Acme customer also can see that Acme sells whole-wheat flour and whole-grain flour and can follow these branches and by selecting values for parameters at forks (which are not illustrated) to determine the part number of these other flour types.
The Acme catalog can be organized with a smaller number of forks and branches by assigning a lower order branch as a leaf and defining the remaining parameters as values. In the white flour example, a different classification tree can be defined as illustrated in FIG. 2. The first fork 9 of the classification tree has three branches: white flour 10, whole-wheat flour 11, and whole-grain flour 12. The white flour branch is a leaf with one parameter; bag weight 13. Bag weight 14 is permitted three values: 10-pound, 50-pound, and 100-pound. When the parameter is selected, the part number for the classified item with the specific parameter is provided. Classification with parameters is useful when the number of permitted values is large or when values for two parameters interact and may be difficult to express as a tree. As an example, a resistor is an electronic item that is manufactured from many different materials and in many shapes. A resistor can be manufactured to provide a specific resistance value within a range of values. The range may provide several thousand different values. Creating a classification tree branch for each value may make the catalog cumbersome for users. Resistance may be best represented as a parameter with a range of values. Many resistor manufacturers generate the part number for a resistor with the resistance value as part of the part number. For example, an 1100-ohm resistor may have the part number R1100, where the “1100” represents the four significant digits of resistance. The parameter values may interact and not be represented as a tree. For example, the manufacturing process for resistors is not uniform and high precision for resistance value is difficult to achieve. The value assigned to the resistance value may limit the precision of the resistance. An 1100-ohm resistor can have a 5% resistance variation while an 110,000-ohm resistor can have a 7% resistance variation. These interactions may be difficult to express as a tree. A catalog can be represented as a classification tree with leaf terminals with parameters with range of values. A classification and parameters with set of valid values represents an item in the catalog.
People can use a catalog that requires interpretation and judgment because people can operate in an environment with a wide range of ambiguity. A computer system requires a systematic catalog to identify an item based on a description. In fact, the description must be systematic for use by a computer system. In the electronics industry, a consortium of companies formed a non-profit organization called RosettaNet to standardize the catalog structures and means to query the catalogs so that computer system can be used to identify items. Classification structures, called taxonomies, have been defined and parameters have been identified for a large number of types of items used by the electronics industry. Examples of the types of items are: capacitors, resistors, logic, connectors, etc. RosettaNet is based on XML, an Internet standard for defining the terms, called tags, used to associate parameters with values in messages. For example using XML, a parameter for item type could be defined as <item_type> and a message with the character string: <item_type>capacitor</item_type> would indicate to the receiving system that the parameter item type has the value “capacitor”. A RosettaNet standard catalog for electronic items requires that each item in the catalog conform to the taxonomy for the type of item. The taxonomy includes a list of parameters that describe the item. The catalog is queried by assigning a value to each parameter in the list as an XML message. If the catalog has an item matching the set of parameter-values, the catalog responds with the catalog part number that can be used to order the item. RosettaNet envisions computer systems sending queries to catalogs rather than people so the length of the XML message is not a problem.
However, the AML validation process continues to be manual since it requires a person to know the characteristics of the item in order to validate the supplier part number or to select the part number of an interchangeable item from a second supplier. The electronic catalogs and XML standards automate the catalog query but a person must look at the AML, determine the type of item, determine the parameters, and determine the values to form the query. The AML for the BoM for baking bread may be five to ten item and not a significant process. The AML for the BoM of an electronic product may be several hundred to several thousand items. Validation of the AML is a measurable time delay in the quotation process and in starting an electronic product into production. An automated process for AML validation can reduce the time delay and reduce the number of errors that can cause significant increases in cost and time delays.